_require       "./General.smi"
_require       "./Int32.smi"
_require local "./IntInf.smi"
_require local "./List.smi"
_require       "./SMLSharp_OSIO.smi"
_require local "./SMLSharp_Runtime.smi"
_require       "./Time.smi"
(*
_require local "../../smlnj/Basis/OS/os-path-fn.smi"
*)
_require local "../../smlnj/Basis/Unix/os-path.smi"


structure SMLSharp_OSFileSys =
struct
  type dirstream (= {})
  val openDir : string -> dirstream
  val readDir : dirstream -> string option
  val rewindDir : dirstream -> unit
  val closeDir : dirstream -> unit
  val chDir : string -> unit
  val getDir : unit -> string
  val mkDir : string -> unit
  val rmDir : string -> unit
  val isDir : string -> bool
  val isLink : string -> bool
  val readLink : string -> string
  val fullPath : string -> string
  val realPath : string -> string
  val modTime : string -> Time.time
  val fileSize : string -> Position.int
  val setTime : string * Time.time option -> unit
  val remove : string -> unit
  val rename : {old : string, new : string} -> unit
  datatype access_mode = A_READ | A_WRITE | A_EXEC
  val access : string * access_mode list -> bool
  val tmpName : unit -> string
  type file_id = {dev: word, ino: word, mode: word, atime: word, mtime: word, size: word}
  val fileId = SMLSharp_OSIO.stat
  val hash : file_id -> word
  val compare : file_id * file_id -> General.order
end
